/**
 * Clase PantallaRegistro: define la pantalla que vera el usuario, la primera vez que arranque la
 * aplicacion, para que pueda almacenar sus parametros identificativos, y de esta manera evitar
 * el tedioso proceso de login en un dispostivo movil (mejoras de USABILIDAD)
 */
package infbmobile.pantallas;

// Importaciones externas
import com.sun.lwuit.*;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.events.ActionListener;

// Importaciones internas
import com.sun.lwuit.layouts.BoxLayout;
import com.sun.lwuit.plaf.Style;
import infbmobile.main.*;
import infbmobile.comunicaciones.*;
import infbmobile.util.UIHerramientas;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Hashtable;
import javax.microedition.media.Manager;

import javax.microedition.media.Player;
import javax.microedition.media.control.RecordControl;

public class PantallaPrincipalCitas extends Form implements ActionListener {
    // Referencia al midlet principal

    private InfBMobile midlet;

    // Atributos de clase
    private Command comandoSalir;
    private RecordControl recordControl;
    private Player capturePlayer;
    private ByteArrayOutputStream bos = new ByteArrayOutputStream();
    public static String[] opciones = new String[]{"VerCitas", "PedirCita"};
    // Hash de asociacion de botones a pantallas
    private Hashtable hashBotonesOpciones;

    /*
     * Constructor principal de la clase
     */
    public PantallaPrincipalCitas(InfBMobile midlet) {
        super("Citas");
        this.midlet = midlet;


        // Definimos el layout del formulario
        setLayout(new BoxLayout(BoxLayout.Y_AXIS));
        // Definimos el layout del formulario


        hashBotonesOpciones = new Hashtable();
        int anchoMaxBoton = 0;
        int anchoPantalla = Display.getInstance().getDisplayWidth();

        Image[] iconosIn = new Image[opciones.length];
        Image[] iconosOut = new Image[opciones.length];
        // Cargamos los iconos
        for (int i = 0; i < opciones.length; i++) {
            // Obtenemos las imagenes de los iconos
            try {
                iconosIn[i] = Image.createImage("/res/iconos/" + opciones[i] + "_IN.png");
                iconosOut[i] = Image.createImage("/res/iconos/" + opciones[i] + "_OUT.png");
            } catch (IOException ioe) {
                ioe.printStackTrace();
            }
            // Creamos el boton con el icono
            Button boton = new Button(opciones[i], iconosOut[i]);
            // Modificamos la aparencia del boton
            Style estiloBoton = boton.getStyle();
            estiloBoton.setBorder(null);
            estiloBoton.setBgTransparency(0);
            // Centramos el texto del boton y lo posicionamos debajo de la imagen
            boton.setAlignment(Label.CENTER);
            boton.setTextPosition(Label.BOTTOM);
            // Establecemos la imagen a mostrar cuando el icono sea seleccionado
            boton.setRolloverIcon(iconosIn[i]);
            boton.addActionListener(this);
            // Creamos la asociacion del boton a la pantalla
            hashBotonesOpciones.put(boton, opciones[i]);
            // Agregamos el boton al formulario
            addComponent(boton);
            // De todos los botones procesados, nos quedamos con aquel de anchura maxima
            // pues el sera el que determinara cuantas "columnas" dispondra la pantalla
            // (puesto que el numero de columnas va en funcion de la maxima anchura de
            // un elemento mostrado por pantalla)
            anchoMaxBoton = Math.max(boton.getPreferredW(), anchoMaxBoton);

        }// Configuramos los comandos
        comandoSalir = new Command("Volver");
        addCommand(comandoSalir);


        setCommandListener(this);


    }

    public void actionPerformed(ActionEvent evento) {
        Object fuente = evento.getSource();



        if (fuente == comandoSalir) {
            System.gc();
            midlet.mostrarPantallaMenuPrincipal();

        } else {
            // Detectamos el icono pulsado
            String opcion = (String) hashBotonesOpciones.get(fuente);
            cargarOpcion(opcion);

        }

    }

    private void cargarOpcion(String pantalla) {
        if (pantalla.equalsIgnoreCase("VerCitas")) {
            //Paramos la grabacion
            midlet.mostrarPantallaCitas();
        } else if (pantalla.equalsIgnoreCase("PedirCita")) {
            //Reproducir la grabacion
            midlet.mostrarPantallaPedirCita();
        }

    // Asi con todas las pantallas que vayamos creando
    }
}

